class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

import collections
class Solution:
    def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
        if not root: return []
        deque = collections.deque([root])
        resList = []
        while deque:
            size = len(deque)
            tempList = []
            while size > 0:
                node = deque.popleft()
                if node.left:
                    deque.append(node.left)
                if node.right:
                    deque.append(node.right)
                size = size - 1
                tempList.append(node.val)
            resList.append(tempList)
        return resList[::-1]

# 这个题目和原来找深度的广度优先搜索算法基本一摸一样。我们主要是在遍历的时候每次存入一个树中的一个行的列表。这样就可以得到我们想要的结果了(最后还需要进行一个倒叙反转)
